Versuch 03: Digitaler Entwurf mit einem FPGA Board
Ansteuerung einer Siebensegment-Anzeige
Projekterstellung, Simulation und Implementierung

Evaluation Vorlesung Digitaltechnik


Bitte folgen Sie folgendem Link und führen Sie erst eine Evaluierung der Vorlesung durch!

→ Evaluation

Hinweise zur Durchführung


Lesen Sie vor dem Versuch die Anleitung. Dokumentieren Sie jeden Versuch in einer Ausarbeitung, Bildschirmkopien der Ergebnisse (< alt > < Druck >, < cmd > < F14 > ) und Ihren persönlichen Erfahrungen. Bitte beachten Sie folgende Hinweise:
  • Elektronikbauteile sind gefährdet durch elektrische Entladungen (ESD). Bevor Sie die Bauteile oder Komponenten des Boards berühren, berühren Sie bitte einen Massepunkt zwecks Entladung. Verwenden Sie ESD Schutzmaßnahmen. Berühren Sie bitte auch nicht eine andere Person, welche gerade mit Elektronikkomponenten / Bauteilen hantiert.

3 Aufgabenstellung

3.1 Entwicklungsumgebung


Sie verwenden das BASYS 2 Board der Fa. Digilent und die Entwicklungsumgebung Xilinx ISE Design Suite.
Details hierzu sind in der Anleitung zu Versuch 3.
Revisionsstand der Tools (SS2014): BASYS2 Boards Rev. D, Adept System Rev 2.7, Adept Runtime Rev 2.15, Adept Application Rev 2.4.2, XILINX ISE 14.6 on a Win7 PC.


Das Program Xilinx ISE Design Suite:



Nach dem Start des Programms sehen Sie folgendes Fenster. Je nach der Version kann die Ansicht etwas variieren, aber Sie finden immer die folgenden Bereiche.
Jeder Bereich hat Reiter oder Knöpfe mit denen man die Ansicht variieren kann. A,B,C,D. Nehmen Sie sich Zeit überall einmal darauf zu klicken und die Funktionen kennen zu lernen. Der Computer explodiert nicht!

Erstellen eines digitalen Designs


Als erstes wird ein Projekt erstellt und diesem Projekt werden alle VHDL, Schematic Dateien und eine ucf Datei zugeordnet. VHDL und Schematic Dateien enthalten die Schaltkreisbeschreibung. Eine ucf Datei enthält die Zuordnung von Signalnamen zu physikalischen Pins des FPGAs. Dann wird festgelegt welche Datei die Gesamtfunktion des Schaltkreises beschreibt (set as root). Danach wird entweder der Arbeitsschritt Simulation oder Implementierung durchgeführt.


Bei der Simulation untersucht man das zeitliche Schaltverhalten bei verschiedenen vorgegebenen Eingangssignalen. Es gibt spezielle VHDL Dateien die das zeitliche Verhalten der Eingangssignale beschreibt. Ein Gerüst für diese Datei kann automatisch erzeugt werden (VHDL Test Bench). Durch die Aktion Simulate Behavioral Model, wird der Syntax aller Dateien des Projects und die korrekte Zuordnung von Verbindungen geprüft. Dann wird ein Simulator gestartet, der das Zeitverhalten der benutzten Signale darstellt. Normalerweise überprüft man hier die Wahrheitstabelle einer digitalen Schaltung, wobei man alle möglichen Eingangskombinationen anlegt.

Wenn die Simulation erfolgreich ist, führt man den Schritt Implementierung durch. Er besteht aus den Unterschritten Synthesis, Implement Design, Generate Programming File. Bei der Synthesis werden wieder alle Dateien auf korrekten Syntax überprüft und auf VHDL Konstrukte abgebildet. Beim Schritt Implement Design wird dann versucht diese VHDL Konstrukte auf einfache Logikblöcke abzubilden und im FPGA zu platzieren und zu verdrahten (Map, Place and Route). Als letztes wird dann die gefundene Lösung in einen Bitstream umgewandelt, der in das FPGA zur Konfiguration geladen wird.

3.2 Aufgabenbeschreibung:


Für das Basys 2 Board entwerfen und testen Sie ein VHDL-Programm, mit welchen Sie die Segmente CA, CB…CG und den Dezimalpunkt DP der Digits mit AN0 (=rechtes Displayzeichen) ansteuern.

Im Projekt werden die Schiebeschalter SW0 bis SW3 als Dualzahl interpretiert und die entsprechende Hexadezimalzahl mit der Siebensegmentanzeige angezeigt.



Sie führen folgende Aufgaben durch:
Teil Aufgabe
1 Erstellung eines neuen Projektes mit ISE-Webpack
Auswahl des Zielsystems in den Projekteigenschaften.
Hinzufügen der Logikbeschreibung mit Hilfe von vorbereiteten VHDL Dateien.
Hinzufügen der Anschlussbelegung mit Hilfe einer UCF Datei.
Auswahl der Hauptdatei (root).
2 Zeitliche Simulation der Logikschaltung
Erstellen einer Simulationsdatei und einer Testvektorliste.
Dazu wird eine VHDL Test Bench erstellt.
Simulation der Schaltung und Interpretation des Ergebnisses.
3 Implementierung der Schaltung auf dem Board
Die Logikschaltung wird in eine Netzliste und ein Bitfile umgewandelt.
Das Bitfile wird auf das Board transferiert.
Alle möglichen Schalterstellungen werden ausprobiert und das Ergebnis auf der Siebensegmentanzeige beobachtet.

3.3 Details zur Siebensegment-Anzeige


Die Anodenanschlüsse der Leuchtdioden der sieben Segmente + Dp eines Digits sind zu einem einzigen Anodenanschluss ANx zusammenfasst. Sämtliche Kathodenanschlüsse der 4 Digits sind parallel geschaltet. Sollen mehrer Digits mit unterschiedlichenZeichen angezeigt werden, dann müssen die Steuersignal zeitlich gemultiplext werden.

Abbildung 1: Siebensegement-Anzeige mit 4 Digits des Basys2-Boards [Digilent Basys2 Board, Reference Manual, 11.11. 2010]

Abbildung 2 I/O Funktionen des Basys2-Boards [Digilent Basys2 Board, Reference Manual, 11.11. 2010]. Hinweis: in der Abbildung muss AN3 ist das linke Digit sein, AN0 das rechte Digit (Reihenfolge wurde vertauscht).

Abbildung 3 Multiplexing der 4 Stellen der Siebensegment-Anzeige [Digilent Basys2 Board, Reference Manual, 11.11. 2010].

3.4 Versuchsdurchführung


Teil 1: Erstellung eines Projektes zur Ansteuerung einzelner Segmente einer Siebensegment-Anzeige


Aktion
1 Starten Sie Xilinx ISE Design Suite. Click auf "Start/Xilinx Design Tools/ISE Design Suite xx.y/ISE Design tools/xx-bit Project Navigator".
xx = 64 bei 64-bit OS, xx = 32 bei 32-bit OS.
Wenn ein Projekt offen ist, bitte mit File-> Close Project schließen.
2 Legen Sie ein Neues Project an: ‘New Project‘.
Name:Digi_Versuch4_Version_01_Gruppe_> Gruppennummer<.
Dann click auf „Next“.
Top-level source type:“ auf „HDL“ (Hardware Description Language, also textuelle Eingabe)
3 Im nächsten Schritt -Project Settings- wählen Sie aus der Family ‚All‘/‘Spartan3E‘ das richtige Device (XC3S250E) und das richtige Gehäuse (z.B. CP132 für das BASYS 2).

Bei click auf „Next“ bekommen Sie eine Zusammenfassung. Mit „Finish“ beenden Sie die Konfiguration.
4 In diesem Schritt fügen Sie die zum Projekt nötigen Dateien hinzu:
Unter Project -> Add Copy of Source kopieren Sie die Dateien:
HEX2LEDAX.vhd
MainBasys2.ucf
VERSUCH3.vhd
aus dem Verzeichnis L:/skripte/vollrath/digitaltechnik/Versuch3
in das Projekt. Alternativ können Sie die obigen Dateien lokal abspeichern und dann hinzufügen.
Die Datei und entity VERSUCH3 wird automatisch als Hauptschaltung (root) erkannt.
5 Durch Doppelklick auf VERSUCH3 wird der Quelltext der Datei dargestellt.
Machen Sie sich mit dem Inhalt vertraut.
Zählen Sie hier die Eingänge und Ausgänge auf:


Welcher Schaltungsblock (COMPONENT) wird hier verwendet (Name)?

Wie sind die Eingänge und Ausgänge des Schaltungsblocks verbunden?
6 Durch Doppelklick auf MainBasys2.ucf wird der Quelltext der Pinbelegungsdatei dargestellt.
Hier werden die Namen der Signale mit den Pins des Bausteins verbunden.
Kommentare werden durch das # Zeichen eingeleitet.
Mit welchem Pin des Bausteins ist dp verbunden?


Teil 2: Simulation einer Ansteuerung einzelner Segmente einer Siebensegment-Anzeige


7 Als Erstes soll nun eine Simulation der Digitalschaltung durchgeführt werden.
Dazu wird der View auf Simulation gestellt.

Beobachten Sie wie sich die Darstellung links in der Mitte ändert und neue Werkzeuge gezeigt werden.
Durch Klick auf das Plus Symbol lassen sich Teilwerkzeuge auswählen.
8 Erzeugen Sie nun eine neue Simulationsdatei.
Rechtsklick auf Ihr VHDL Modul:
New Source -> VHDL Testbench
Tragen Sie als File name: Test_V3 ein und drücken Sie next.
Bei „Associate Source“ wählen Sie das Modul VERSUCH3 aus. (next, finish)

Es erscheint der Quelltext für die Simulation.
9 Einfügen der Testbedingungen, Testvektoren
Suchen Sie die folgende Zeile:

-- insert stimulus here
Dort können Sie nun den zeitlichen Ablauf der Eingänge bestimmen.
Bsp:

                        sw <= "00000000";  -- Alle Leitungen von sw werden auf 0 gesetzt.
                        wait for 100 ns;   -- Es wird 100 ns gewartet
                        sw(0) <= '1';      -- Nur die Leitung sw(0) wird auf 1 gesetzt. 
                        wait for 200 ns;   -- Es wird 200 ns gewartet
                        sw(1) <= '1';      -- sw(0) bleibt auf '1' und sw(1) wird auch auf 1 gesetzt. 
                      
Fügen Sie genug Zeilen ein, um alle möglichen Kombinationen von sw(3 downto 0) zu erzeugen.
Kopieren Sie die Zeilen hier hin.

10 Starten Sie die Simulation, indem Sie mit der Maus Test_V3 anwählen.
Im linken mittleren Fenster gibt es nun die Option:
"ISIM Simulator" und nach Klick auf das "+" plus Zeichen "Simulate Behavioral Model".

Durch Doppelklick starten Sie den Simulationsprozess, der ein zweites Fenster öffnet.
Sie sollten nun ein ähnliches Bild wie unten sehen.
Startet der Simulationsprozess nicht, wird mit der rechten Maustaste über "Simulate Behavioral Model" "Rerun All" gestartet.

Mit dem Knopf wird die Grafik auf Fenstergröße skaliert.
Mit dem Knopf setzen Sie die Simulation zurück.
Mit dem Knopf simulieren Sie für einen Zeitabschnitt.

11 Stellen Sie sicher, dass alle Testvektoren sichtbar sind.
Dokumentieren Sie ihr Ergebnis und fügen Sie hier den Screenshot ein:


Remove

Verhalten sich die Eingangssignale "sw" und die Ausgangssignale "led" und "seg" wie erwartet?


Teil 3: Impementierung einer Ansteuerung einzelner Segmente einer Siebensegment-Anzeige


12 Wechseln Sie auf die Ansicht Implementation.
Wählen sie das root Modul gekennzeichnet durch die drei Vierecke aus.
Nun findet sich im mittleren linken Fenster die Option "Generate Programming File".
13 Legen Sie einige Optionen fest durch: Rechts-Click auf „Generate Programming File“ -> Process Properties -> FPGA Start-Up Clock auf „JTAG Clock“



14 Sie erzeugen nun durch Doppelclick auf die Funktion „Generate Programming File“ das Programmierfile für das FPGA-Board:

Wie lange dauert es [s], bis dieser Schritt abgeschlossen ist?
Stoppen Sie die Zeit mit der Uhr oder sehen Sie im Design Summary Report nach.

Sie finden nun im Projektverzeichnis eine Datei VERSUCH3.bit,
File, Open, All Files, sortieren nach Typ.
Kopieren Sie diese Datei auf das H: Laufwerk und übertragen Sie diese im nächsten Schritt zu Ihrem Board.
>
15 Verbinden Sie-falls noch nicht geschehen-, das BASYS 2 board per USB mit dem Rechner.
Starten Sie nun die Software Adept.
Wird „Initialize Chain“ mit der Meldung „Initialization complete“ abgeschlossen, dann ist die Kommunikation zwischen BASYS 2 und dem Rechner o.k.
Per „Browse“ (obere Zeile) wechseln Sie in ihr Projektverzeichis und laden das .bit File.
Eine Warnung wg. der „Startup clock…“ bestätigen sie mit „Ja“.
Dann click auf „Program“ und das FPGA ist konfiguriert.


16 Testen Sie nun die Funktion. Setzen Sie die Schiebeschalter und beobachten die Ausgangsfunktion. Passt alles?
Dokumentieren Sie hier Ihre Testergebnisse mit Wahrheitstabelle und Kommentar.

Achtung: Sie arbeiten im nächsten Versuch weiter an diesem Projekt.
Sichern Sie Ihre Daten!!!





Bitte geben Sie Gruppennummer und Namen ein:


Drucken Sie diese Seite für Ihre Unterlagen als pdf Datei aus. Verwenden Sie den Drucker pdf Creator.

Last Saved:




Submit     Recall     Save